document.addEventListener('DOMContentLoaded', function() {
  const apiUrl = 'http://localhost:9000'; // API 基础 URL
  const token = localStorage.getItem('token'); // 从本地存储中获取 token
  const userId = localStorage.getItem('userId'); // 从本地存储中获取用户 ID

  // 如果没有 token 或用户 ID，提示用户先登录并跳转到登录页面
  if (!token || !userId) {
    alert('请先登录');
    window.location.href = 'login.html';
    return;
  }

  // 获取表单中的输入元素
  const usernameInput = document.querySelector('.username');
  const ageInput = document.querySelector('.age');
  const genderSelect = document.querySelector('.gender');
  const nicknameInput = document.querySelector('.nickname');

  // 获取用户信息并填充表单
  async function loadUserInfo() {
    try {
      // 发送 GET 请求获取用户信息
      const response = await axios.get(`${apiUrl}/users/info?id=${userId}`, {
        headers: { 'Authorization': token } // 设置请求头的授权信息
      });
      if (response.data.code === 1) { // 成功获取用户信息
        const userInfo = response.data.user;
        // 填充表单输入框
        usernameInput.value = userInfo.nickname;
        ageInput.value = userInfo.age || '';
        genderSelect.value = userInfo.gender || '';
        nicknameInput.value = userInfo.nickname || '';
      } else { // 获取用户信息失败
        alert('获取用户信息失败：' + response.data.message);
        window.location.href = 'login.html'; // 跳转到登录页面
      }
    } catch { // 请求失败
      alert('获取用户信息出错，请稍后重试');
    }
  }

  // 提交表单事件
  async function updateUserInfo(event) {
    event.preventDefault(); // 阻止表单的默认提交行为
    const age = ageInput.value.trim(); // 获取年龄输入框的值并去除两端空白
    const gender = genderSelect.value; // 获取性别选择框的值
    const nickname = nicknameInput.value.trim(); // 获取昵称输入框的值并去除两端空白

    try {
      // 发送 POST 请求更新用户信息
      const response = await axios.post(`${apiUrl}/users/update`, {
        id: userId,
        age: age,
        gender: gender,
        nickname: nickname
      }, {
        headers: { 'Authorization': token } // 设置请求头的授权信息
      });
      if (response.data.code === 1) { // 成功更新用户信息
        alert('修改用户信息成功');
        window.location.href = 'main.html'; // 跳转到主页
      } else { // 更新用户信息失败
        alert('修改用户信息失败：' + response.data.message);
      }
    } catch { // 请求失败
      alert('修改用户信息出错，请稍后重试');
    }
  }

  // 为表单提交事件绑定 updateUserInfo 函数
  document.querySelector('#userForm').addEventListener('submit', updateUserInfo);

  // 加载用户信息
  loadUserInfo();
});
